/*
	Copyright (C) 2010 2011 Rémi Thebault

	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 3 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program. If not, see <http://www.gnu.org/licenses/>.
*/



#ifndef __pc_atomtask_h__
#define __pc_atomtask_h__

#include <QList>

#include <procycle/task.h>

namespace PC {

class AtomTask : public Task {
	friend class MacroTask;
public:

	AtomTask(Cycle*	cycle, MacroTask* parent=0);
	AtomTask(Task* other);

	virtual ~AtomTask();


	int lastNum() const { return num(); }
	int setNum(int current);

	void setLength(int length);


	void forwSchedule(Link* inLink);
	void backwSchedule(Link* outLink);


	virtual void loadFromElement (const QDomElement& element);
	virtual QDomElement saveToElement (QDomDocument& doc) const;

};

}


#endif /* __pc_atomtask_h__ */
